package com.mindskip.xzs.service.impl;

import com.mindskip.xzs.repository.BaseMapper;
import com.mindskip.xzs.service.BaseService;

// 抽象类BaseServiceImpl，实现BaseService接口
public abstract class BaseServiceImpl<T> implements BaseService<T> {

    // 基础映射器，用于与数据库进行交互
    private final BaseMapper<T> baseMapper;

    // 构造方法，通过依赖注入初始化baseMapper
    public BaseServiceImpl(BaseMapper<T> baseMapper) {
        this.baseMapper = baseMapper;
    }

    // 根据ID删除记录
    @Override
    public int deleteById(Integer id) {
        return baseMapper.deleteByPrimaryKey(id);
    }

    // 插入记录
    @Override
    public int insert(T record) {
        return baseMapper.insert(record);
    }

    // 插入记录（根据条件过滤）
    @Override
    public int insertByFilter(T record) {
        return baseMapper.insertSelective(record);
    }

    // 根据ID查询记录
    @Override
    public T selectById(Integer id) {
        return baseMapper.selectByPrimaryKey(id);
    }

    // 根据ID更新记录（根据条件过滤）
    @Override
    public int updateByIdFilter(T record) {
        return baseMapper.updateByPrimaryKeySelective(record);
    }

    // 根据ID更新记录
    @Override
    public int updateById(T record) {
        return baseMapper.updateByPrimaryKey(record);
    }
}
